﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MySql.Data.MySqlClient;
using MySql.Data.Types;
using System.Data.Sql;
using System.Data.SqlClient;

namespace GCon
{
    /// <summary>
    /// Descripción breve de Con_Recibo
    /// </summary>
    public class Con_Recibo
    {
        public Con_Recibo()
        {
            
        }
        public Con_Recibo(String ID_PK, String IMPORTE, String PAGADO, String APLAZADO, String FECHA_EMISION, String MATRICULA_ID_PK, String ALUMNO_ID_PK, String CAJA, String CONCEPTO)
        {
            _ID_PK = ID_PK;
            _IMPORTE = IMPORTE;
            _PAGADO = PAGADO;
            _APLAZADO = APLAZADO; 
            _FECHA_EMISION = FECHA_EMISION;
            _MATRICULA_ID_PK = MATRICULA_ID_PK;
            _ALUMNO_ID_PK = ALUMNO_ID_PK;
            _CAJA = CAJA;
            _CONCEPTO = CONCEPTO;
        }
        public Con_Recibo(Con_Recibo otra)
        {
            _ID_PK = otra._ID_PK;
            _IMPORTE = otra._IMPORTE;
            _PAGADO = otra._PAGADO;
            _APLAZADO = otra._APLAZADO;
            _FECHA_EMISION = otra._FECHA_EMISION;
            _MATRICULA_ID_PK = otra._MATRICULA_ID_PK;
            _ALUMNO_ID_PK = otra._ALUMNO_ID_PK;
            _CAJA = otra._CAJA;
            _CONCEPTO = otra._CONCEPTO;
        }

        /// Getters
        public String Get_ID_PK()
        {
            return this._ID_PK;
        }
        public String Get_IMPORTE()
        {
            return this._IMPORTE;
        }
        public String Get_PAGADO()
        {
            return this._PAGADO;
        }
        public String Get_APLAZADO()
        {
            return this._APLAZADO;
        }
        public String Get_FECHA_EMISION()
        {
            return this._FECHA_EMISION;
        }
        public String Get_MATRICULA_ID_PK()
        {
            return this._MATRICULA_ID_PK;
        }
        public String Get_ALUMNO_ID_PK()
        {
            return this._ALUMNO_ID_PK;
        }
        public String Get_CAJA()
        {
            return this._CAJA;
        }
        public String Get_CONCEPTO()
        {
            return this._CONCEPTO;
        }
        /// Setters
        public void Set_ID_PK(String parametro)
        {
            this._ID_PK = parametro;
        }
        public void Set_IMPORTE(String parametro)
        {
            this._IMPORTE = parametro;
        }
        public void Set_PAGADO(String parametro)
        {
            this._PAGADO = parametro;
        }
        public void Set_APLAZADO(String parametro)
        {
            this._APLAZADO = parametro;
        }
        public void Set_FECHA_EMISION(String parametro)
        {
            this._FECHA_EMISION = parametro;
        }
        public void Set_MATRICULA_ID_PK(String parametro)
        {
            this._MATRICULA_ID_PK = parametro;
        }
        public void Set_ALUMNO_ID_PK(String parametro)
        {
            this._ALUMNO_ID_PK = parametro;
        }
        public void Set_CAJA(String parametro)
        {
            this._CAJA = parametro;
        }
        public void Set_CONCEPTO(String parametro)
        {
            this._CONCEPTO = parametro;
        }

        /// <summary>
        /// Procedimiento de carga.
        /// Recupera de la BBDD la Recibo con Id = IdRecibo.
        /// </summary>
        /// <param name="IdRecibo"></param>
        public void CargaRecibo(int IdRecibo)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL CargaRecibo ( '" + IdRecibo + "' );";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                this._ID_PK = dr["RECIBO_ID_PK"].ToString();
                this._IMPORTE = dr["RECIBO_IMPORTE"].ToString();
                this._PAGADO = dr["RECIBO_PAGADO"].ToString();
                this._APLAZADO = dr["RECIBO_APLAZADO"].ToString();
                this._FECHA_EMISION = dr["RECIBO_FECHA_EMISION"].ToString();
                this._MATRICULA_ID_PK = dr["MATRICULA_ID_PK"].ToString();
                this._ALUMNO_ID_PK = dr["ALUMNO_ID_PK"].ToString();
                this._CAJA = dr["RECIBO_CAJA"].ToString();
                this._CONCEPTO = dr["RECIBO_CONCEPTO"].ToString();

            }

            oConexion.Close();
        }

        /// <summary>
        /// Procedimiento de inserción.
        /// Inserta en la BBDD una Recibo.
        /// </summary>
        public void InsertaRecibo()
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL InsertaRecibo ( '" + this._IMPORTE + "," + this._PAGADO + "," + this._APLAZADO + "," + this._FECHA_EMISION + "," + this._MATRICULA_ID_PK + "," + this._ALUMNO_ID_PK + "," + this._CAJA + "," + this._CONCEPTO + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        /// <summary>
        /// Procedimiento de modificación.
        /// Modifica en la BBDD una Recibo.
        /// </summary>
        public void ModificaRecibo()
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL ModificaRecibo ( '" + this._ID_PK + this._IMPORTE + "," + this._PAGADO + "," + this._APLAZADO + "," + this._FECHA_EMISION + "," + this._MATRICULA_ID_PK + "," + this._ALUMNO_ID_PK + "," + this._CAJA + "," + this._CONCEPTO + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        /// <summary>
        /// Procedimiento de eliminación.
        /// Elimina de la BBDD una Recibo.
        /// </summary>
        public void EliminaRecibo()
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL EliminaRecibo ( '" + this._ID_PK + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        /// Atributos
        private String _ID_PK;
        private String _IMPORTE;
        private String _PAGADO;
        private String _APLAZADO;
        private String _FECHA_EMISION;
        private String _MATRICULA_ID_PK;
        private String _ALUMNO_ID_PK;
        private String _CAJA;
        private String _CONCEPTO;
    }
}
